package com.fduss.sota.dao;

import com.fduss.sota.domain.RiskCheckTemplateItem;
import org.springframework.dao.InvalidDataAccessApiUsageException;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @Author duocai
 * @Date 2017/6/3
 * @Time 14:58
 */
@Repository
public interface RiskCheckTemplateItemDao extends JpaRepository<RiskCheckTemplateItem, Long> {

    List<RiskCheckTemplateItem> getRiskCheckTemplateItemsByName(String name);

    /**
     *  get the items whose name contains the parameter key
     * @param key must not be null
     * @return List<RiskCheckTemplateItem>
     * @throws InvalidDataAccessApiUsageException if the key is null
     */
    List<RiskCheckTemplateItem> getRiskCheckTemplateItemsByNameContaining(String key);

    /**
     *  get the items whose contents contain the parameter key
     * @param key must not be null
     * @return List<RiskCheckTemplateItem>
     * @throws InvalidDataAccessApiUsageException if the key is null
     */
    List<RiskCheckTemplateItem> getRiskCheckTemplateItemsByContentContaining(String key);

    /**
     *  get the items whose name or contents contain the parameter key
     * @param key1 must not be null
     * @param key2 must not be null
     * @return List<RiskCheckTemplateItem>
     * @throws InvalidDataAccessApiUsageException if the key is null
     */
    List<RiskCheckTemplateItem> getRiskCheckTemplateItemsByContentContainingOrNameContaining(String key1, String key2);
}
